package hyl.base.mq;
import hyl.core.info.CMsg;
import hyl.core.run.IFinishT;

public interface ISendReceive<T> {
	final int I同步=1;
	final int I异步=0;

	//发送和接收分为两部分 ,一 准备,二 发送或接收
	/**
	 * 分组消息
	 * @param 消费者分类 区分哪类消费者
	 * @param 消息主题 锁定消费主题
	 * @param 回调函数
	 * @return
	 */


	ISendReceive<T> set主题(String 大类, String 小类);	
	/**
	 * 不分组消息 ,默认异步方式
	 * @param 消息主题
	 * @param 回调函数
	 * @return
	 */
	ISendReceive<T> set主题(String 大类);	
	ISendReceive<T> set回调函数(IFinishT<CMsg> 回调函数,int 方式);
	ISendReceive<T> set回调函数(IFinishT<CMsg> 回调函数);
	/**
	 * 发送,发送前先准备,默认是异步发送<br>
	 * 如果为空 ,用ready ()的默认topic
	 * @param msg
	 */

	void send(String 数据标签, byte[] msg);	
	
	/**
	 * 同步接收,接收前先准备,默认是异步方式接收
	 */
	void receive() ;

	
	void close();


}
